#ifndef __ERATHOSTENE_HPP__
#define __ERATHOSTENE_HPP__

#include <gmpxx.h>

class Erathostene
{
   protected :
      
      int          _size;
      bool       * _tab;
      mpz_class  * _nbPremier;
      int          _nbDeNbPremiers;
   
   public :
      
      Erathostene (int inSize);
      ~Erathostene(){ delete [] _tab;
                      delete [] _nbPremier;}
      
      mpz_class * getNbPremier(){ return _nbPremier; }
                      
      void remplissage();
      
      void sieve();
      
      void erathostene();
      
      //int getNombre( int inI ) { return _nbPremier[ inI ]; }
      
      mpz_class * execution();
      
      int getSize(){ return _size; }
      
      mpz_class higherFactor(mpz_class & nb);
      
      void generateFile();
};


#endif
